package com.ruicar.afs.cloud.channel.common.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 耿继辉
 */
@Data
public class CarToList {
    // 必输校验
    private String apiUser;
    @ApiModelProperty(value = "唯一标识")
    @JsonSerialize(using = ToStringSerializer.class)
    @JSONField(serializeUsing = com.alibaba.fastjson.serializer.ToStringSerializer.class)
    protected Long id;
    // 申请时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "申请时间")
    @TableField(fill = FieldFill.INSERT)
    private Date applicationTime;

    // 合作商名称
    private String partnerName;

    // 合作商id
    private String partnerId;

    // 品牌名称
    private String brand;

    // 车型
    private String model;

    // 车辆类型名称
    private String vehicleType;

    // 车辆类型id
    private String vehicleTypeId;

    // 款式
    private String style;

    // VIN号
    private String vinNumber;

    // 表显里程
    private String apparentMileage;

    // 首次登记日期
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "首次登记日期")
    @TableField(fill = FieldFill.INSERT)
    private Date firstRegistrationDate;

    // 车辆出厂日期
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "车辆出厂日期")
    @TableField(fill = FieldFill.INSERT)
    private Date vehicleDeliveryDate;

    // 所有人
    private String owner;

    //总过户次数
    private Integer totalTransferTimes;

    // 证件号
    private String idNo;

    // 上牌省市
    private String listedProvincesCities;

    // 原使用性质
    private String originalUseNature;

    //指导价
    private BigDecimal guidancePrice;

    // 排量
    private String displacement;

    // 发动机号
    private String engineNumber;

    //车身颜色
    private String carColor;

    // 燃油类型
    private String fuelType;

    // 车牌号
    private String licensePlateNumber;

    // 创建时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    //创建人
    private String createBy;

    //更新时间
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT)
    private Date updateTime;

    /**
     * 是否需要车牌1:是 0:否
     */
    private String useCarNumber;

    //更新人
    private String updateBy;

    //状态 1 启用  0停用
    private String status;

    /**
     * 品牌ID
     */
    private String brandId;

    /**
     * 车型ID
     */
    private String modelId;

    /**
     * 款式ID
     */
    private String styleId;

    /**
     * 开票日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date invoiceTime;

    /**
     * 上牌省
     */
    private String cardProvince;
    /**  上牌市 */
    private String cardCity;

    /**
     * 评估价
     */
    private BigDecimal evaluationPrice;
}
